<?php

namespace app\index\controller;

use think\Controller;

use app\index\model\Data;//引入

//use think/Loader;

class Model extends \think\Controller
{
	public function index(){
		//使用模型方法

		//静态调用的写法  1
		$res = Data::get(78);

		//new的写法  2
		//$res = new Data();
		//$res = Data::get(77);

		//可以加多个模型的写法 3
		//$res = Loader::model("Data");
		//$res = $res::get(76);
		
		//使用助手函数的写法 4
		//$res = model("Data");
		
		// $res = $res::get(78);

		//读取出对象其中的数组的值
		$res = $res->toArray();
		dump($res);
	}
	public function find(){

		
		// //实例化后查询
		// $data = new Data();
		// // 查询单个数据
		// $data = $data->where('title','=','thinkphp')
		// ->find();

		
		//根据主键获取多个数据
		// $data = Data::all('79,78,80');
		//或者使用数组
		// $data = Data::all([79,78]);
		// foreach ($data as $key => $user) {
		// 	echo $user->id."<br/>";
		// }
		// foreach ($data as $key => $user) {
		// 	echo $user->title."<br/>";
		// }



		//使用全键查询
		// $data = Data::get(16);
		//dump($data);
		// echo $data->title;

		
		//使用数组查询     object对象转化数组->toArray() 连贯操作
		//$data = Data::get(['title' => '80'])->toArray();
		

		// 使用闭包查询
		// $data = Data::get(function($query){
		//     $query->where('title', '中超')->order('id','asc');
		// })->toArray();


		//多条数据查询
		//使用数组查询
		// $data = Data::all(['id' => '80']);
		//使用闭包查询
		// $data = Data::all(function($query){
		//     $query->where('id','>', '10')->limit(10)->order('id','asc');
		// });


		//使用实例化查询
		$data = new Data();
		// // 查询数据集
		// $data = $data->where('id','>','0')
		// 			 // ->limit(10)
		// 			 ->order('id','asc')
		// 			 ->select();
		 $data = $data->order('id','asc')->select();
		// 使用数据库查询  最方便
		// $data = data::where('id','>',80)->select();

	//软删除
		//查询包括软删除的数据
		// $data = data::withTrashed()->where('id','>',80)->select();

		//仅仅查询软删除了的数据
		// $data = data::onlyTrashed()->where('id','>',0)->select();

		// foreach ($data as $key => $user) {
		// 	echo $user->id."<br/>";
		// }
		dump($data);

	}

	public function save(){
		//添加一条数据；
		
		//第一种是实例化模型对象后赋值并保存
		$tom = new Data;
		// $tom->title = 'haha^_^123456789';
		// $tom->content = '250285636@qq.com';
		// 模型对象赋值
		$tom->data([
			'title'=>'thinkphp^_^',
			'content'=>'thinkphp@qq.com'
			]);
		// $tom->save(); 
		//获取自增ID
		// echo $tom->id;

		//$user = model('Data');
		//批量新增
		$user = new Data;
		$list = [
			['title'=>'Rinuo.com','content'=>'2350768356@qq.com'],
			['title'=>'onethink','content'=>'onethink@qq.com'],
		];
		$user->saveAll($list);

		//echo $user->id; //获取自增ID
		
	}	

	public function updata(){


		//在取出数据后，更新字段内容后更新数据
		$user = Data::get(104);
		$user->title = 'tom123';
		$user->content = '2350768356@qq.cn';
		$user->save();


		//直接带更新条件来更新数据
		// $user = new Data;
		//save方法第二个参数为更新条件 指定id为100的更新数据
		// $user->save([
		// 		'title' => 'Rinuo.com',
		// 		'content' => 'thibkphp@qq.com'
		// 	],['id'=>100]);


		//模型支持静态方法直接更新数据，例如：
		// Data::where('id',100)->update(['title'=>'1+1=2']);
		//或者使用
		// Data::update(['id'=>100,'title'=>'2+2=4']);
		

		//可以通过闭包函数适应更复杂的更新条件，例如
		// $user = new Data;
		// $user->save(['title'=>'think[h['],function($query){
		// 	//更新status值为1，并且id大于10的数据
		// 	$query->where('status','0')->where('id','>',50);
		// });
		

		//把stuatus字段所有值改为0
		// $user = new Data;
		// $data = array('status'=>0);
		// $user->where('1=1')->setField($data);

	}
	public function delete(){
		//删除模型数据，可以在实例化后调用delete方法
		// $user = data::get(11);
		// $user->delete();
		// dump($usr);

		//或者直接调用静态方法
		// Data::destroy(102);
		//支持批量删除多个数据
		// Data::destroy('100,99,98');
		//或者
		// $tom = Data::destroy([10,11]);
		// dump($tom);
		//条件删除
		
		//使用数组进行条件删除，例如：
		// Data::destroy(['title'=>'中超']);
		
		//使用闭包删除，例如：
		// Data::destroy(function($query){
		// 	$query->where('id','>',85);
		// });
		
		//或者通过数据库类的查询条件删除
		// Data::where('content','=','2350768356@qq.com')->delete();
	}
}